#ifndef EVENT_H_
#define EVENT_H_

enum MOVE_EVENT {MOVE_FORWARD = 0, MOVE_BACKWARD, MOVE_LEFT, MOVE_RIGHT, STOP_FORWARD, STOP_BACKWARD, STOP_LEFT, STOP_RIGHT};

// EXAMPLE EVENTS
// Probably use this as the even type then use structs for any exact changes
enum EVENTID { PLAYER_MOVE_CL, PLAYER_MOVE_SV };

class Event
{
private:
	EVENTID		eventID;	//	The event's id type.
	void*		param;		//	Store any variable type, probably a struct related to an event

public:
	Event(EVENTID _eventID, void* _param = 0);
	~Event();

	EVENTID	GetEventID()	{ return eventID; }
	void*	GetParam()		{ return param; }

};

#pragma pack(push)
#pragma pack(1)

struct PlayerMoveEvent
{
	char direction;
	
	PlayerMoveEvent(char _direction = 0) : direction(_direction){}
};

#pragma pack(pop)

#endif